const baseURL = 'http://localhost:9988';

// 引入存放牌牌的容器

import {
	useTokenStore
} from "@/stores/jwt.js";

// 我们每次向后端发请求都会走这个代码
const requestlanjieqi = {
	invoke(options) {
		// 判断如果请求参数的url 不以http开头  我就把baseURL 加在你的实际url之前
		if (!options.url.startsWith('http')) {
			// 修改url 
			options.url = baseURL + options.url;
		}
		options.timeout = 10000; // 超时时间 单位是毫秒

		// 小程序端向后端发请求  这样的话微信小程序 百度小程序等等 才能向后端发请求
		options.header = {
			'source-client': 'miniapp',
		}

		// 带牌牌
		const tokenStore = useTokenStore();
		const paipai = tokenStore.jwt; // 牌牌
		console.log(1)
		if (paipai) { // 判断牌牌不为空 
			console.log(2)
			// 将牌牌添加到当前这个请求的请求头中
			options.header.Authorization = paipai;

		}


	}

}

// 当我们执行uni.request的时候  才会走这个拦截器
uni.addInterceptor('request', requestlanjieqi);


/**
 * uni.request 这个代码给你封装一下
 */
export const http = (canshu) => {

	return new Promise((resolve, reject) => {
		uni.request({
			...canshu, // 请求参数
			success(res) { // 后端给你正常响应数据
				console.log(res.data); // 后端给你响应的数据
				if (res.data.code == 0) {
					// 提示权限不足
					uni.showToast({
						title: '权限不足', // 弹框信息
						duration: 2000, // 默认2s后自动消失
						icon: 'error' // 说明是错误提示
					});

					// 不能往下继续走了
					reject(res);
				} else if (res.data.code == 1) {
					// 未登录请登录去
					uni.showToast({
						title: '未登录或者登录过期', // 弹框信息
						duration: 2000, // 默认2s后自动消失
						icon: 'error' // 说明是错误提示
					});
					uni.navigateTo({
						url: '/pages/login/index'
					});
					// 不能继续往下走了
					reject(res);

				} else {
					// 程序继续往下走
					resolve(res.data);
				}

			},
			fail(res) { // 没有调通后端
				reject(res);
			}
		});

	})


}